<?php
use app\company\model\CardCompany as CompanyModel;
use app\Common\model\LongbingUserInfo as StaffModel;
use app\card\model\CardJob as JobModel;
/**
 * @author yangqi
 * @create time 2019年11月26日19:27:26
 * 获取公司列表
 */

function longbingGetAllCompany($uniacid) {
    
    $result = [];
    //判断uniacid是否存在
    if(empty($uniacid)) return $result;
    //生成公司模型
    $company_model = new CompanyModel();
    //设置查询参数
    $where = [
        ['status', '<>', -1],
        ['pid', '=', 0],
        ['uniacid', '=', $uniacid]
    ];
    $result = $company_model->getlist($where);
    //检查顶级公司是否存在
    if(empty($result)) return $result;
    //获取子集公司/部门
    $whereson = [
        ['status', '<>', -1],
        ['pid', '<>', 0],
        ['uniacid', '=', $uniacid]
    ];
    $sonCompany = $company_model->getlist($whereson);
    //判断子集公司/部门 是否存在
    if(!empty($sonCompany)) $result = $company_model->handleCompanyLevel($result, $sonCompany, 'children');
    //返回数据
    return $result;
}

/**
 * @author yangqi
 * @create time 2019年11月26日19:27:26
 * 获取子部门数量
 */
function longbingGetSonCompanyCount($company_id)
{
    //生成公司模型
    $company_model = new CompanyModel();
    $count         = $company_model->getCompanyCount([['pid' ,'=' , $company_id] ,['status' , '>' ,-1]]);
    return $count;
}

/**
 * @author yangqi
 * @create time 2019年11月26日19:27:26
 * 获取公司列表
 */
function longbingGetStaffCount($company_id)
{
    //生成公司模型
    //
    $cardCompanyModel = new CompanyModel();

    $companyIdList = array_unique($cardCompanyModel->getCompanyUser_l($company_id));
    $companyIdList[] = $company_id ;


    $staff_model = new StaffModel();
    $count         = $staff_model->getUserCount([ ['company_id' ,'in', $companyIdList ],['is_staff' , '=' , 1 ] ]);


    return $count;
}

/**
 * @author yangqi
 * @create time 2019年11月26日19:27:26
 * 获取职位
 */
function longbingGetJob($job_id ,$uniacid ,$is_update = false)
{
    if(empty($job_id) || empty($uniacid)) return false;
    //获取职位信息
    $result = null;
    $key = 'longbing_card_job_' . $job_id;
    if(hasCache($key ,$uniacid) && empty($is_update)){
        //获取缓存数据
        $result = getCache($key ,$uniacid);
        //判断缓存数据是否为空,否则返回
        if(!empty($result)) return $result;
    }
    $job_model = new JobModel();
    
    $result = $job_model->getJob([['id' ,'=' , $job_id] ,['uniacid' ,'=' ,$uniacid] ,['status' ,'>' ,-1]]);
    if(empty($result)) {
        delCache($key ,$uniacid);
        return null;
    }
    setCache ( $key, $result, 600, $uniacid);
    return $result;
}

